package com.ship.boats.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ship.boats.domain.OilinessPrice;
import com.ship.boats.domain.dto.CreateOilinessPriceRq;
import com.ship.boats.domain.dto.CurveDataRq;
import com.ship.boats.domain.vo.ExportOilinessPriceInfo;
import com.ship.boats.domain.vo.QueryOilinessPriceInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OilinessPriceMapper extends BaseMapper<OilinessPrice> {
    OilinessPrice queryOilinessByName(@Param("query") CreateOilinessPriceRq query);

    List<QueryOilinessPriceInfo> queryOilinessList(@Param("curveName") String curveName,
                                                   @Param("settleFwd") String settleFwd,
                                                   @Param("nameList") List<String> nameList,
                                                   @Param("startTime") String startTime,
                                                   @Param("endTime") String endTime,
                                                   @Param("ids") List<String> ids);

    List<String> queryOilinessName(@Param("settleFwd") String settleFwd);

    void insertOilinessPrice(OilinessPrice oilinessPrice);

    List<OilinessPrice> queryOilinessPriceByName(@Param("curveUid") Integer curveUid,@Param("queryDate") String queryDate,@Param("settleFwd") String settleFwd);

    List<ExportOilinessPriceInfo> exportOilinessPrice(@Param("curveName") String curveName,@Param("nameList") List<String> nameList, @Param("startTime") String startTime,@Param("endTime") String endTime,@Param("settleFwd") String settleFwd);

    List<Integer> queryUidList(@Param("curveName") String curveName,
                               @Param("settleFwd") String settleFwd,
                               @Param("nameList") List<String> nameList,
                               @Param("startTime") String startTime,
                               @Param("endTime") String endTime,
                               @Param("ids") List<String> ids);

    List<QueryOilinessPriceInfo> queryOilinessPriceList(@Param("curveUid") Integer curveUid);
}
